// Representation of World Stored
// Authors: Matthew DeNovio
#ifndef WORLD
#define WORLD

#include "Tile.h"
#include <sstream>


class World {	

private:

	// Attributes
	U16 _height;				// Height of the World/Level
	U16 _width;					// Width of the World/Level
	Camera * _pGameCamera;		// Pointer to the Game Camera

	Tile *** _pWorldMapTile;	// Representation of worldMap as tiles

	static const U8 TILE_COUNT = 6;	// Amount of tiles to load from


	Tile * tiles[TILE_COUNT];		// Array of pointers to Tiles Allocated


	// Functions
	void createBlankWorld();
	void drawCurrentScreen();
	void drawFullScreen();
	void deleteWorld();
	void createTile(I8 tileNum);	// Create Tile in Memory
	void deleteTiles();				// delete allocated tiles

public:

	World();
	~World(void);


	// Functions

	void init(Camera * gameCamera);

	void loadMap(U8 levelNumber);

	void drawScreen();

	void drawOffsetParts(Point& shiftAmount, Point& playerLoc);

	U16 Height(){return _height;}
	U16 Width(){return _width;}

	Tile * GetTile(U16 x, U16 y);



};

#endif
